From cd71a23ee2827dc246bf399d7b5274e67e1c33d4 Mon Sep 17 00:00:00 2001 From: Stefano Facchini Date: Tue, 8 Jul 2014 14:12:39 +0200 Subject: [PATCH] icontheme: Use correct URI for icons in resource paths Fix based on a patch by Stefano Faccini, https://bugzilla.gnome.org/show_bug.cgi?id=732894 --- gtk/gtkicontheme.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 8ecfa90fc9..d3a48ccf29 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -1759,6 +1759,7 @@ real_choose_icon (GtkIconTheme *icon_theme, if (unthemed_icon) { + gchar *uri; icon_info = icon_info_new (ICON_THEME_DIR_UNTHEMED, size, 1); /* A SVG icon, when allowed, beats out a XPM icon, but not a PNG icon */ @@ -1770,9 +1771,14 @@ real_choose_icon (GtkIconTheme *icon_theme, else if (unthemed_icon->no_svg_filename) icon_info->filename = g_strdup (unthemed_icon->no_svg_filename); - icon_info->icon_file = g_file_new_for_path (icon_info->filename); + if (unthemed_icon->is_resource) + uri = g_strconcat ("resource://", icon_info->filename, NULL); + else + uri = g_strconcat ("file://", icon_info->filename, NULL); + icon_info->icon_file = g_file_new_for_uri (uri); icon_info->is_svg = suffix_from_name (icon_info->filename) == ICON_SUFFIX_SVG; icon_info->is_resource = unthemed_icon->is_resource; + g_free (uri); } out: @@ -3016,11 +3022,18 @@ theme_lookup_icon (IconTheme *theme, if (min_dir->dir) { + gchar *uri; + file = g_strconcat (icon_name, string_from_suffix (suffix), NULL); icon_info->filename = g_build_filename (min_dir->dir, file, NULL); - icon_info->icon_file = g_file_new_for_path (icon_info->filename); + if (min_dir->is_resource) + uri = g_strconcat ("resource://", icon_info->filename, NULL); + else + uri = g_strconcat ("file://", icon_info->filename, NULL); + icon_info->icon_file = g_file_new_for_uri (uri); icon_info->is_svg = suffix == ICON_SUFFIX_SVG; icon_info->is_resource = min_dir->is_resource; + g_free (uri); g_free (file); } else -- 2.30.2